<!--$Id: dbt_bulk_class.so,v 1.15 2004/08/13 03:38:56 bostic Exp $-->
<!--Copyright (c) 1997,2008 Oracle.  All rights reserved.-->
<!--See the file LICENSE for redistribution information.-->
<html>
<head>
<title>Berkeley DB: Bulk Retrieval API</title>
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++">
</head>
<body bgcolor=white>
<table width="100%"><tr valign=top>
<td>
<b>Bulk Retrieval API</b>
</td>
<td align=right>
<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a>
<a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a></td>
</tr></table>
<hr size=1 noshade>
<tt>
<b><pre>
#include &lt;db_cxx.h&gt;
<p>
class DbMultipleDataIterator
{
public:
	DbMultipleDataIterator(const Dbt &dbt);
<p>
	bool next(Dbt &data);
};
<p>
class DbMultipleKeyDataIterator
{
public:
	DbMultipleKeyDataIterator(const Dbt &dbt);
<p>
	bool next(Dbt &key, Dbt &data);
};
<p>
class DbMultipleRecnoDataIterator
{
public:
	DbMultipleRecnoDataIterator(const Dbt &dbt);
<p>
	bool next(db_recno_t &key, Dbt &data);
};
</pre></b>
<hr size=1 noshade>
<b>Description: Bulk Retrieval API</b>
<p>If either of the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a> or <a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flags
were specified to the <a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> method, the data
<a href="../api_cxx/dbt_class.html">Dbt</a> returned by those interfaces will refer to a buffer that
is filled with data.  Access to that data is through the following
classes.</p>
<p>All instances of the bulk retrieval classes may be used only once, and
to traverse the bulk retrieval buffer in the forward direction only.
However, they are nondestructive, so multiple iterators can be
instantiated and used on the same returned data <a href="../api_cxx/dbt_class.html">Dbt</a>.</p>
<hr size=1 noshade>
<b>Description: DbMultipleIterator</b>
<p>The <a href="../api_cxx/dbt_bulk_class.html">DbMultipleIterator</a> is a shared package-private base class
for the three types of bulk-return Iterator; it should never be
instantiated directly, but it handles the functionality shared by its
subclasses.</p>
<hr size=1 noshade>
<b>Description: DbMultipleDataIterator</b>
<p>The DbMultipleDataIterator class is used to iterate through data
returned using the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a> flag from a database belonging
to any access method.</p>
<p>The constructor takes the data <a href="../api_cxx/dbt_class.html">Dbt</a> returned by the call to
<a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> that used the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a>
flag.</p>
<b>Parameters</b> <br>
 <b>dbt</b><ul compact><li>The <b>dbt</b> parameter is a data <a href="../api_cxx/dbt_class.html">Dbt</a> returned by the call to
<a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> that used the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a>
flag.</ul>
<br>
<hr size=1 noshade>
<b>Description: DbMultipleDataIterator.next</b>
<p>The DbMultipleDataIterator.next method takes a <a href="../api_cxx/dbt_class.html">Dbt</a> that will be
filled in with a reference to a buffer, a size, and an offset that
together yield the next data item in the original bulk retrieval buffer.</p>
<p>The DbMultipleDataIterator.next method returns false if no more data are
available, and true otherwise.</p>
<b>Parameters</b> <br>
 <b>data</b><ul compact><li>The <b>data</b> parameter is a <a href="../api_cxx/dbt_class.html">Dbt</a> that will be filled in with
a reference to a buffer, a size, and an offset that together yield the
next data item in the original bulk retrieval buffer.</ul>
<br>
<hr size=1 noshade>
<b>Description: DbMultipleKeyDataIterator</b>
<p>The DbMultipleKeyDataIterator class is used to iterate through
data returned using the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flag from a database
belonging to the Btree or Hash access methods.</p>
<p>The constructor takes the data <a href="../api_cxx/dbt_class.html">Dbt</a> returned by the call to
<a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> that used the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a>
flag.</p>
<b>Parameters</b> <br>
 <b>dbt</b><ul compact><li>The <b>dbt</b> parameter is a data <a href="../api_cxx/dbt_class.html">Dbt</a> returned by the call to
<a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> that used the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a>
flag.</ul>
<br>
<hr size=1 noshade>
<b>Description: DbMultipleKeyDataIterator.next</b>
<p>The DbMultipleKeyDataIterator.next method takes two <a href="../api_cxx/dbt_class.html">Dbt</a>s, one
for a key and one for a data item, that will each be filled in with a
reference to a buffer, a size, and an offset that together yield the
next key and data item in the original bulk retrieval buffer.  The
DbMultipleKeyDataIterator.next method returns false if no more data are
available, and true otherwise.</p>
<p>The DbMultipleKeyDataIterator.next method returns false if no more data
are available, and true otherwise.</p>
<b>Parameters</b> <br>
 <b>key</b><ul compact><li>The <b>key</b> parameter will be filled in with a reference to a buffer,
a size, and an offset that yields the next key item in the original bulk
retrieval buffer.</ul>
 <b>data</b><ul compact><li>The <b>data</b> parameter will be filled in with a reference to a buffer,
a size, and an offset that yields the next data item in the original bulk
retrieval buffer.</ul>
<br>
<hr size=1 noshade>
<b>Description: DbMultipleRecnoDataIterator</b>
<p>This class is used to iterate through data returned using the
<a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flag from a database belonging to the Recno or
Queue access methods.</p>
<p>The constructor takes the data <a href="../api_cxx/dbt_class.html">Dbt</a> returned by the call to
<a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> that used the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a>
flag.</p>
<b>Parameters</b> <br>
 <b>dbt</b><ul compact><li>The <b>dbt</b> parameter is a data <a href="../api_cxx/dbt_class.html">Dbt</a> returned by the call to
<a href="../api_cxx/db_get.html">Db::get</a> or <a href="../api_cxx/dbc_get.html">Dbc::get</a> that used the <a href="../api_cxx/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a>
flag.</ul>
<br>
<hr size=1 noshade>
<b>Description: DbMultipleRecnoDataIterator.next</b>
The DbMultipleRecnoDataIterator.next method takes a <b>db_recno_t</b>
for the key and a <a href="../api_cxx/dbt_class.html">Dbt</a> for a data item, which will be filled in
with a pointer to a buffer and a size.  Together they yield the next key
and data item in the original bulk retrieval buffer.
<p>The DbMultipleRecnoDataIterator.next method returns false if no more
data are available, and true otherwise.</p>
<b>Parameters</b> <br>
 <b>key</b><ul compact><li>The <b>key</b> parameter will be filled in with a reference to a
buffer, a size, and an offset that yields the next key item in the
original bulk retrieval buffer.</ul>
 <b>data</b><ul compact><li>The <b>data</b> parameter will be filled in with a reference to a
buffer, a size, and an offset that yields the next data item in the
original bulk retrieval buffer.</ul>
<br>
</tt>
<table width="100%"><tr><td><br></td><td align=right>
<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
</td></tr></table>
<p><font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>
</body>
</html>
